#-*- coding: UTF-8 -*-
from pyramid.httpexceptions import HTTPFound
from pyramid.security import remember
from pyramid.security import forget

from sqlalchemy.orm import eagerload


from scp.modelo.models import DBSession
from scp.modelo.Tipo_Item import Tipo_Item
from scp.modelo.Rol import Rol
from scp.modelo.Permiso import Permiso

from pyramid.response import Response
from pyramid.view import view_config
import json

import re

#@view_config(renderer='json')
def items(request):
	"""Método controlador encargado de la administración de los itmes.
		URL asociada: /items/{operacion}
		operacion:
			
		@param request: Petición Http del cliente. 	
	"""
	
	methodRequest = request.method
		
	dicParametros = request.matchdict
	

	if dicParametros.get('operacion') == 'crear' and request.url.find('?') == -1:
		print 'respondí un diccionario normal'
		return {'content':'Hello!'}	
	
	
	session = DBSession()
	if dicParametros.get('operacion') == 'viewTipoItems':
		#debemos enviar todos los tipos de items correspondientes a la fase, por ahora estamos enviando todos.
		tiposItems = session.query(Tipo_Item).all()
		tiposItemsArray = []
		
		for tipoItem in tiposItems:
			aux = {'idTipoItem': tipoItem.id, 'nombreTipoItem': tipoItem.nombre} 
			tiposItemsArray.append(aux)
		
		responseView = Response()
		#responseView.body = json.dumps(dict(success = True, tiposItems = [{'idTipoItem':'1', 'nombreTipoItem': 'Caso de Uso'}, {'idTipoItem':'2', 'nombreTipoItem': 'Requerimiento Funcional'}]))
		responseView.body = json.dumps(dict(success = True, tiposItems = tiposItemsArray))
		responseView.content_type = 'application/json'
		print 'respondí con un Responseeeee!!!'
		return responseView
	
	
	if dicParametros.get('operacion') == 'traerAtributos':
		#traemos los atributos del tipo de item solicitado
		tipoItem = session.query(Tipo_Item).filter_by(id=request.params['idTipoItem']).first()
		
		atributos = tipoItem.atributos
		atributosArray = []
		
		for atributo in atributos:
			aux = {'nombre':atributo.nombre, 'tipo': atributo.tipo_dato}
			atributosArray.append(aux)
		
		responseView = Response()
		#responseView.body = json.dumps(dict(success = True, atributos = [{'nombre':'Nombre', 'tipo': 'Cadena'}, {'nombre':'Fecha Inicio', 'tipo': 'Fecha'}]))
		responseView.body = json.dumps(dict(success = True, atributos = atributosArray))
		responseView.content_type = 'application/json'
		print 'respondí con un Responseeeee!!!'
		return responseView
		
	
	
	
	
